package org.dromara.system.runner;

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.system.service.ISysOssConfigService;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;


/**
 * @Author 刘武贵
 * @Date 2024/8/15 22:00
 * @Description 功能描述：初始化 system 模块对应业务数据
 */
/**
 * SystemApplicationRunner 类实现了 ApplicationRunner 接口，负责在应用程序启动后运行特定的初始化代码。
 * 这个类的主要作用是确保应用程序以预期的方式启动并进行必要的初始化。
 */
@Slf4j
@RequiredArgsConstructor
@Component
public class SystemApplicationRunner implements ApplicationRunner {

    /**
     * 对象存储配置Service接口
     */
    private final ISysOssConfigService ossConfigService;

    /**
     * 启动应用程序并处理命令行参数
     *
     * @param args 命令行参数，用于控制应用程序的启动行为
     * @throws Exception 如果参数处理失败或应用程序启动过程中遇到错误，则抛出异常
     */
    @Override
    public void run(ApplicationArguments args) throws Exception {
        // 初始化OSS配置服务
        ossConfigService.init();
        // 日志输出OSS配置初始化成功
        log.info("初始化OSS配置成功");
    }

}
